    package TUILayer;
    import java.util.Scanner;
    import ControlLayer.OrdreCtr;
    import java.util.ArrayList;
    import ModelLayer.*;
    /**
     * Write a description of class OrdreUI here.
     * 
     * @author (your name) 
     * @version (a version number or a date)
     */
    public class OrdreUI
    {
        private OrdreCtr ordreCtr;

        /**
         * Constructor for objects of class OrdreUI
         */
        public OrdreUI()
        {
            ordreCtr = new OrdreCtr();
        }
    
        public void start()
        {
            ordreMenu();
            ordreCtr = new OrdreCtr();
        }
        
    
        /**
         * Ordre menuen.
         */
        public void ordreMenu()
        {
            boolean exit = false;
            while(!exit)
            {
                int choice = writeOrdreMenu();
                if(choice == 1)
                {
                    findOrdre();
                }
                else{
                    if(choice == 2)
                    {
                        addOrdre();
                    }
                    else{
                        if(choice == 3)
                        {
                            sletOrdre();
                        }
                        else{
                            if(choice == 4)
                            {
                                opdaterOrdre();
                            }
                            else{
                                if(choice == 5)
                                {
                                    listAll();
                                }
                                else{
                                    exit = true;
                                }
                            }
                        }
                    }
                }
            }
        }
        
        public int writeOrdreMenu()
        {
            Scanner keyboard = new Scanner(System.in);
            System.out.println(" *** Kunde Menu *** ");
            System.out.println(" (1) Find ordre");
            System.out.println(" (2) Opret ny ordre");
            System.out.println(" (3) Slet ordre");
            System.out.println(" (4) opdater ordre");
            System.out.println(" (5) List alle ordre");
            System.out.println(" (6) Tilbage");
            System.out.println("\n Vælg: ");
            System.out.println();
            
            int choice = keyboard.nextInt();
            return choice;
        }
        
        public String inputStatus()
        {
            Scanner keyboard = new Scanner(System.in);
            System.out.println(" Indtast status som bestilt eller pakket:  ");
            String status = keyboard.nextLine();
            return status;
        }
        
        
        
        public int inputOrdreNr()
        {   
            int nr = 0;
               Scanner keyboard = new Scanner(System.in);
               System.out.println(" Indtast ordre nummer.:  ");
               try
               {
                 nr = keyboard.nextInt();
               }
               catch (Exception e)
                {
                 System.out.println("Der skal indtastes et tal -  prøv igen");
                }
            
            return nr;
        }
        
        public int inputKundeId()
        {
            Scanner keyboard = new Scanner(System.in);
            System.out.println(" Indtast kundens ID:  ");
            int kundeId = keyboard.nextInt();
            return kundeId;
        }
        
        public void findOrdre()
        {
            int nummer = inputOrdreNr();
            ArrayList<Ordre> ordre = ordreCtr.listeAfOrdre();
            Ordre ordrer = ordreCtr.findOrdre(nummer);
            System.out.println("\n" + ordrer.getOrdreNr() + " " + ordrer.getStatus()+ "\n");
            System.out.println("\n" + ordrer.visMinKunde().getId() + " " + ordrer.visMinKunde().getNavn() + " " + ordrer.visMinKunde().getAdresse()+ "\n");
            System.out.println("\n" + ordrer.visMinKunde().getPostNr() + " " + ordrer.visMinKunde().getBy() + " " + ordrer.visMinKunde().getTlf() + " " + ordrer.visMinKunde().getFirma() + "\n");
            if(ordre == null)
            {
                System.out.println("Kan ikke finde ordre");
            }
        }
        
        public void addOrdre()
        {
            String status = inputStatus();
            int ordreNr = inputOrdreNr();
            int kundeNummer = inputKundeId();
            ordreCtr.addOrdre(status, ordreNr, kundeNummer);
        }
        
        private void sletOrdre()
        {
            ArrayList<Ordre> ordreListe = ordreCtr.listeAfOrdre();
             int index = 0;
             for(Ordre ordrer : ordreListe)
             {
                   System.out.println("\n" + "ordre nummer :" + ordrer.getOrdreNr() + " " + ordrer.getStatus() + " " + ordrer.visMinKunde());
                   index ++;
             }
             
             System.out.println("Indtast det ordre nummer som du vil slette");
             int nr = inputOrdreNr();
             
             ordreCtr.sletOrdre(nr);
             System.out.println("Orderen er nu slettet");
             
        }
        
        private void opdaterOrdre()
        {
            int ordreNr = inputOrdreNr();
            String status = inputStatus();
            Ordre ordre = ordreCtr.findOrdre(ordreNr);
            if(status.length() > 0)
            {
                ordre.setStatus(status);
            }
        
        }
        
        private void listAll()
        {
             ArrayList<Ordre> ordreListe = ordreCtr.listeAfOrdre();
             int index = 0;
             for(Ordre ordrer : ordreListe)
             {
                   System.out.println("\n" + "ordre nummer :" + ordrer.getOrdreNr() + " " + ordrer.getStatus() + " " + ordrer.visMinKunde().getId() + " " + ordrer.visMinKunde().getNavn());
                   index ++;
             }
             
             System.out.println();
        }
    }
    
